Дано
неотрицательное целое число. Проверить, делится ли оно на 2, на 4 и на 8.
Вход. Одно
неотрицательное целое число, содержащее не более 100 цифр.
Выход. В первой
строке выведите Yes, если число делится на 2, иначе выведите No.
Во второй
строке выведите Yes, если число делится на 4, иначе выведите No.
В третьей
строке выведите Yes, если число делится на 8, иначе выведите No.
Пример входа 1 |
Пример выхода 1 |
16 |
Yes Yes Yes |
|
|
Пример входа 2 |
Пример выхода 2 |
7135618 |
Yes No No |
строки
Число
делится на 2, если его последняя цифра делится на 2.
Число
делится на 4, если число составленное из его двух последних цифр делится на 4.
Число
делится на 8, если число составленное из его трех последних цифр делится на 8.
Эти три
правила можно объединить в одно: составим число из трех последних цифр
заданного. Если оно делится на 2, 4, 8, то и исходное число делится на 2, 4, 8.
Реализация алгоритма
Входное
число длинное, читаем его в символьный массив s.
#define MAX 110
char s[MAX];
Читаем
число, вычисляем его длину len
(количество цифр).
gets(s); len = strlen(s);
В
переменную n заносим число,
составленное из трех последних цифр исходного числа. Исходное число может
содержать менее трех цифр (len может
быть меньше 3).
len -= 3;
if (len < 0) len = 0;
sscanf(s+len,"%d",&n);
В
зависимости от делимости n на 2, 4, 8
выводим ответ.
if (n % 2 == 0) printf("Yes\n");
else printf("No\n");
if (n % 4 == 0) printf("Yes\n");
else printf("No\n");
if (n % 8 == 0) printf("Yes\n");
else printf("No\n");